// 给你一个下标从 0 开始的整数数组 nums 。

// 一开始，所有下标都没有被标记。你可以执行以下操作任意次：

// 选择两个 互不相同且未标记 的下标 i 和 j ，满足 2 * nums[i] <= nums[j] ，标记下标 i 和 j 。
// 请你执行上述操作任意次，返回 nums 中最多可以标记的下标数目。

/**
 * @param {number[]} nums
 * @return {number}
 */
var maxNumOfMarkedIndices = function(nums) {
  let length = nums.length
  if (length === 1) return 0
  nums.sort((a,b) => a - b)
  let mark = {}
  let result = 0
  let middle = Math.ceil(length / 2)

  for(let i = 0; i < middle; i++) {
    let one = nums[i]
    if (mark[i]) {continue}
    for(let j = middle; j < length; j++) {
      if (mark[j]) {continue}
      let two = nums[j]
      if (2 * one <= two) {
        mark[i] = true
        mark[j] = true
        result += 2
        if (middle === j) {
          middle ++
        }
        break
      }
    }
  }

  return result % 2 === 0 ? result : result - 1
};


// console.log("%c Line:39 🍏", "color:#7f2b82", maxNumOfMarkedIndices([3,5,2,4]));
console.log("%c Line:39 🍏", "color:#7f2b82", maxNumOfMarkedIndices([9,2,5,4]));
